﻿/* SCRIPTS DE INICIALIZAÇÃO SEM FUNÇÃO COMEÇAM AQUI */

// Aqui verificamos se o browser suporta webkit, cria a base e as tabelas
// 
// 
try {
    if (window.openDatabase) {
        db = openDatabase("HPGACN 1.2", "1.2", "Base para presenca dos alunos do Grupo Augusto Cezar Netto", 200000);        
		if (!db)
			alert("Falha ao abrir a base de dados local. Isso pode acontecer se a versao da base for antiga ou se nao houver mais espaco disponível para esse domínio");
    } else
    alert("Esse browser nao suporta bases de dados local. A presenca nao sera realizada. Utilize o Google Chrome, Safari ou visite http://webkit.org/");
} catch(err) {
    db = null;
    alert("Houve um erro ao abrir a base de dados. Tente executar com um browser WebKit ou limpar os dados de navegacao")
    console.error(err);
}

var captured = null;
var highestId = 0;

if(db) {
	db.transaction(function (tx) {
		tx.executeSql("CREATE TABLE Aluno (ID REAL UNIQUE, NomePessoa TEXT, TurmaID REAL)",
						[],
						function(result) {console.log("Tabela Aluno Criada")});
						
		tx.executeSql("CREATE TABLE Turma (TurmaID REAL UNIQUE, TurmaCod TEXT)",
						[], 
						function (result) {console.log("Tabela Turma Criada")});

		tx.executeSql("CREATE TABLE Presenca (ID REAL NOT NULL, data TEXT)",
						[], 
						function (result) {console.log("Tabela Presenca")});
	});
}



/* SCRIPTS DE INICIALIZACÃO SEM FUNÇÃO TERMINAM AQUI */



function AtualizaDadosPagina(id) {
	
	if(db && !(id == "")) {
	db.transaction(function (tx) {
			tx.executeSql("SELECT Aluno.NomePessoa, Turma.TurmaCod FROM Aluno INNER JOIN Turma ON Aluno.TurmaID = Turma.TurmaID WHERE ID = (?)", [id], function(tx, result) {
            	for (var i = 0; i < result.rows.length; ++i) {
            	
                	var row = result.rows.item(i);
                	$("#nomeAluno").text(row['NomePessoa']);
                	$("#turmaAluno").text(row['TurmaCod']);
                
            	}
           	 if (!result.rows.length) {
           	     console.log('Não há dados na tabela para recuperar dados do aluno, porem a presenca foi registrada');
           	     LimparLabel();
           	 }
        	}, function(tx, error) {
           	 alert('Erro ao recuperar dados do banco local - ' + error.message);
           	 return;
        	});
		});
	}
	atualizaPainel();
}

function LimparLabel(){
	$("#inputPresenca").val("");
	$("#inputPresenca").focus();
}

function RecuperaListasLocais(){

	allAlunosAllTurmas();
	atualizaPainel();

}

function EnviarPresencaServidor(){
	EnviarArrayAlunos();
	atualizaPainel();
}

function VerificaPresencaNovaNaBase(){

	if(db != null) {
		db.transaction(function (tx) {
			tx.executeSql("SELECT COUNT(*) as presencas FROM Presenca", [], function(tx, result) {
            	for(var i=0; i< result.rows.length; i++) {
					var row = result.rows.item(i)
					result[i] = {
						presencas: row['presencas']
					}
                }
            });
        });
	

	}
}
	
/*
Referências
----------------------------------
JavaScript Getters and Setters
http://ejohn.org/blog/javascript-getters-and-setters/

WebKit Does HTML5 Client-side Database Storage
http://www.webkit.org/blog/126/webkit-does-html5-client-side-database-storage/

Sticky Notes
http://www.webkit.org/demos/sticky-notes/index.html


var database = openDatabase("Database Name", "Database Version");

database.executeSql("SELECT * FROM test", function(result1) {
   // do something with the results
   database.executeSql("DROP TABLE test", function(result2) {
     // do some more stuff
     alert("My second database query finished executing!");
   });
});

*/